Data frequently changes in rows of tables of a database management system. Concurrency control (CC) protocols are designed to maintain consistency during these data changes, as well as improve the throughput of the database management system. One way to maintain CC is to maintain a snapshot of a table in the database management system, where a snapshot is created at a particular time.
A multi-version concurrency control (MVCC) is a CC mechanism that uses the snapshot mechanism. In the MVCC mechanism, when a read thread reads a row from a table, the write thread may write to the row in the table without being blocked by the read thread. In the MVCC mechanism, the database management system stores MVCC information that read and write threads query to determine which rows in a table can be accessed. When the write threads commit changes to the rows in the table, the changes eventually become visible to all read threads and MVCC information associated with these rows is removed.
In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.